package com.example.ceramics.fragment;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.example.ceramics.R;
import com.example.ceramics.activity.DetailActivity;
import com.example.ceramics.adapter.GoodsAdapter;
import com.example.ceramics.database.dao.GoodsDaoImpl;
import com.example.ceramics.database.dao.IGoodsDao;
import com.example.ceramics.entity.GoodsEntity;
import com.example.ceramics.data.Datas;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
import com.scwang.smart.refresh.layout.listener.OnRefreshListener;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class GoodsFragment extends BaseFragment {

    private String title;
    private RecyclerView recyclerView;
    private RefreshLayout refreshLayout;
    private GoodsAdapter goodsAdapter;
//    private List<GoodsEntity> datas;

    private List<List<String>> Names = new ArrayList<>();
    private List<List<Double>> Prices = new ArrayList<>();
    private List<List<String>> Signatures = new ArrayList<>();
    private List<List<Integer>> Imgs = new ArrayList<>();
    private List<String> type;

    private Datas datas = new Datas();

    private IGoodsDao goodsDao;

    public GoodsFragment() {
    }

    public static GoodsFragment newInstance(String title) {
        GoodsFragment fragment = new GoodsFragment();
        fragment.title = title;
        return fragment;
    }

    @Override
    protected int initLayout() {
        return R.layout.fragment_goods;
    }

    @Override
    protected void initView() {
        recyclerView = mRootView.findViewById(R.id.recyclerView);
        refreshLayout = mRootView.findViewById(R.id.refreshLayout);
    }

    @Override
    protected void initData() {
//模拟数据
//        data();
        goodsDao = new GoodsDaoImpl(mRootView.getContext());

        refreshLayout.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(RefreshLayout refreshlayout) {
//                refreshlayout.finishRefresh(1500/*,false*/);//传入false表示刷新失败
                localGoodsList(true);
                showToast("刷新成功！");
            }
        });
        refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                localGoodsList(false);
            }
        });

        //网格布局管理器
        GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2);
        recyclerView.setLayoutManager(gridLayoutManager);
        goodsAdapter = new GoodsAdapter(getActivity());
        recyclerView.setAdapter(goodsAdapter);
        goodsAdapter.setOnItemClickListener(new GoodsAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(Serializable obj) {
                GoodsEntity goodsEntity = (GoodsEntity)obj;
                navigateTo(DetailActivity.class, "detail", goodsEntity);
            }
        });
        localGoodsList(true);
    }

    private void localGoodsList(boolean isRefresh) {
        List<GoodsEntity> list = new ArrayList<>();

        if(title.equals("所有商品")){
            list = goodsDao.listAllGoods();
        }else {
            list = goodsDao.listGoodsByType(title);
        }

//        switch (title) {
//            case "所有商品":
//                for (int i = 0; i < Names.size(); i++) {
//                    for (int j = 0; j < Names.get(i).size(); j++) {
//                        GoodsEntity goodsEntity = new GoodsEntity();
//                        goodsEntity.setGoodsName(Names.get(i).get(j));
//                        goodsEntity.setGoodsPrice(Prices.get(i).get(j));
//                        goodsEntity.setGoodsSignature(Signatures.get(i).get(j));
//                        goodsEntity.setGoodsType(type.get(i));
//                        goodsEntity.setGoodsImg(Imgs.get(i).get(j));
//                        list.add(goodsEntity);
//                    }
//                }
//                break;
//            case "十二生肖系列":
//                for (int i = 0; i < Names.get(0).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(0).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(0).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(0).get(i));
//                    goodsEntity.setGoodsType("十二生肖系列");
//                    goodsEntity.setGoodsImg(Imgs.get(0).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//            case "阴阳五行系列":
//                for (int i = 0; i < Names.get(1).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(1).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(1).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(1).get(i));
//                    goodsEntity.setGoodsType("阴阳五行系列");
//                    goodsEntity.setGoodsImg(Imgs.get(1).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//            case "四季系列":
//                for (int i = 0; i < Names.get(2).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(2).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(2).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(2).get(i));
//                    goodsEntity.setGoodsType("十二生肖系列");
//                    goodsEntity.setGoodsImg(Imgs.get(2).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//            case "百鸟朝凤系列":
//                for (int i = 0; i < Names.get(3).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(3).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(3).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(3).get(i));
//                    goodsEntity.setGoodsType("百鸟朝凤系列");
//                    goodsEntity.setGoodsImg(Imgs.get(3).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//            case "地域风采系列":
//                for (int i = 0; i < Names.get(4).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(4).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(4).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(4).get(i));
//                    goodsEntity.setGoodsType("地域风采系列");
//                    goodsEntity.setGoodsImg(Imgs.get(4).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//            case "节日限定":
//                for (int i = 0; i < Names.get(5).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(5).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(5).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(5).get(i));
//                    goodsEntity.setGoodsType("节日限定");
//                    goodsEntity.setGoodsImg(Imgs.get(5).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//            case "其他周边":
//                for (int i = 0; i < Names.get(6).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(6).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(6).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(6).get(i));
//                    goodsEntity.setGoodsType("其他周边");
//                    goodsEntity.setGoodsImg(Imgs.get(6).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//            case "定制服务":
//                for (int i = 0; i < Names.get(7).size(); i++) {
//                    GoodsEntity goodsEntity = new GoodsEntity();
//                    goodsEntity.setGoodsName(Names.get(7).get(i));
//                    goodsEntity.setGoodsPrice(Prices.get(7).get(i));
//                    goodsEntity.setGoodsSignature(Signatures.get(7).get(i));
//                    goodsEntity.setGoodsType("定制服务");
//                    goodsEntity.setGoodsImg(Imgs.get(7).get(i));
//                    list.add(goodsEntity);
//                }
//                break;
//        }


//        for (int i = 0; i < 8; i++) {
//            GoodsEntity goodsEntity = new GoodsEntity();
//            goodsEntity.setGoodsName("陶瓷盲盒子");
//            goodsEntity.setGoodsPrice(55.6);
//            goodsEntity.setGoodsSignature("陶瓷盲盒十二生肖");
//            goodsEntity.setGoodsType("十二生肖");
//            goodsEntity.setGoodsImg(R.mipmap.image2);
//            list.add(goodsEntity);
//        }
        if (isRefresh) {
            refreshLayout.finishRefresh(1000);

//            datas=list;
//            showToast("刷新成功！");
            goodsAdapter.setDatas(list);
            goodsAdapter.notifyDataSetChanged();
        } else {
            refreshLayout.finishLoadMore(1000);

            showToast("已经到底了！");
        }
    }

    private void data() {
        datas.setDatas();
        Names = datas.getNames();
        Prices = datas.getPrices();
        Signatures = datas.getSignatures();
        Imgs = datas.getImgs();
        type = datas.getType();
    }

}